Code for the Online Stock Brokerage System
Write the object-oriented code to implement the design of the ‘online stock brokerage system’ problem.
We've reviewed different aspects of the online stock brokerage system and observed the attributes attached to the problem using various UML diagrams. Let’s explore the more practical side of things, where we will work on implementing the online stock brokerage system using multiple languages. This is usually the last step in an object-oriented design interview process.
We have chosen the following languages to write the skeleton code of the different classes present in the online stock brokerage system:
Java
C#
Python
C++
JavaScript
Online stock brokerage system classes#
In this section, we’ll provide the skeleton code of the classes designed in the class diagram lesson.
Note: For simplicity, we are not defining getter and setter functions. The reader can assume that all class attributes are private and accessed through their respective public getter methods and modified only through their public method functions.
Enumerations and custom data type#
First of all, we will define all the enumerations required in the stock brokerage system. According to the class diagram, there are three enumerations used in the system i.e. OrderStatus
, TimeEnforcementType
and AccountStatus
. The code to implement these enumerations and custom data types is as follows:
Note: JavaScript does not support enumerations, so we will be using the
Object.freeze()
method as an alternative that freezes an object and prevents further modifications.
Account#
The Account
class will be an abstract class, which will have the actors, Admin
and Member
, as child classes. The definition of these classes is given below:
Watchlist and stock #
A Watchlist
class is a list of stocks that an investor keeps an eye on, to profit from price drops. The Stock
class is an equity or a security that represents a portion of the issuing company's ownership.
Search and stock inventory#
The StockInventory
class implements the Search
interface.
Stock position and stock lot #
All the stocks that the user owns will be included in the StockPosition
class. A member may purchase various lots of the same stock at various dates. The StockLot
class will represent these particular lots.
Order#
Members can place stock trading orders when they want to sell or acquire StockPosition
.
Transfer money#
Members should be able to deposit and withdraw money either via Check
, Wire
, or ElectronicBank
transfer.
Notification#
The Notification
class is another abstract class responsible for sending notifications to the users, with the SmsNotification
and EmailNotification
classes as its child. The implementation of this class is shown below:
Stock exchange#
The stock brokerage system will get all the stocks and their current pricing from the StockExchange
class.
Wrapping up#
We've explored the complete design of an online stock brokerage system in this chapter. We've looked at how a basic online stock brokerage system can be visualized using various UML diagrams and designed using object-oriented principles and design patterns.
Activity Diagram for the Online Stock Brokerage System
Getting Ready: Jigsaw Puzzle